package com.paperobot.service;

import java.util.List;
import java.util.Map;

import com.paperobot.model.Admin;
import com.paperobot.model.Magazine;
import com.paperobot.model.News;
import com.paperobot.model.Paper;
import com.paperobot.model.PaperType;

public interface PaperobotService {

	//paper interface
	Long addPaper(Paper paper);	
	int updatePaper(Paper paper);
	int updatePaperClickNum(Long paperId);
	int deletePaper(Long paperId);
	List<Paper> getPaperList();
	List<Paper> getPaperList(boolean status);
	List<Paper> getPaperList(int type, boolean status);	
	List<Paper> getPaperList(int type, int subType, boolean status);
	List<Paper> getHotPaperList(int topNum);
	List<Paper> getHotPaperList(boolean status, int topNum);
	List<Paper> getHotPaperList(int type, boolean status, int topNum);	
	List<Paper> getHotPaperList(int type, int subType, boolean status, int topNum);
	List<Paper> getRecommendPaperList(int topNum);
	List<Paper> getRecommendPaperList(boolean status, int topNum);
	List<Paper> getRecommendPaperList(int type, boolean status, int topNum);	
	List<Paper> getRecommendPaperList(int type, int subType, boolean status, int topNum);
	Paper getPaper(Long paperId);
	List<Paper> findPaperList(String title);
	
	//admin interface
	Long addAdmin(Admin admin);	
	int updateAdmin(Admin admin);	
	int deleteAdmin(Long adminId);
	List<Admin> getAdminList(int type);
	List<Admin> getAdminList();
	List<Admin> getAdminList(int type, boolean status);	
	Admin getAdmin(String userName);
	
	//news interface
	Long addNews(News news);	
	int updateNews(News news);	
	int updateNewsClickNum(Long newsId);
	int deleteNews(Long newsId);
	List<News> getNewsList();
	List<News> getNewsList(boolean status);	
	List<News> getHotNewsList(boolean status, int topNum);
	List<News> getRecommendNewsList(boolean status, int topNum);
	News getNews(Long newsId);
	
	//news interface
	Long addPaperType(PaperType paperType);	
	int updatePaperType(PaperType paperType);	
	int deletePaperType(Long paperTypeId);
	List<PaperType> getPaperTypeList();
	List<PaperType> getPaperTypeList(int type);	
	PaperType getPaperType(Long paperTypeId);
	
	//magazine interface
	Long addMagazine(Magazine magazine);	
	int updateMagazine(Magazine magazine);	
	int deleteMagazine(Long magazineId);
	List<Magazine> getMagazineList();
	List<Magazine> getMagazineList(boolean status);	
	Magazine getMagazine(Long magazineId);
	
	
}
